1
Leçon 7 : Le transfert d'apprentissage – Exploiter les connaissances
EvoClass-AI002Conférence 7
00:00

Bienvenue à la leçon 7, où nous introduisons le transfert d'apprentissage. Cette technique consiste à réutiliser un modèle d'apprentissage profond déjà entraîné sur un grand jeu de données général (comme ImageNet) et à l'adapter pour résoudre une nouvelle tâche spécifique (comme notre défi FoodVision). Elle est essentielle pour atteindre des résultats de pointe de manière efficace, surtout lorsque les jeux de données étiquetés sont limités.

1. La puissance des poids pré-entraînés

Les réseaux neuronaux profonds apprennent les caractéristiques de manière hiérarchique. Les couches inférieures apprennent des concepts fondamentaux (bords, coins, textures), tandis que les couches plus profondes combinent ces éléments en concepts complexes (yeux, roues, objets spécifiques). La clé de l'insight est que les caractéristiques fondamentales apprises au début sont universellement applicables dans la plupart des domaines visuels.

Composants du transfert d'apprentissage

  • Tâche source : Entraînement sur 14 millions d'images et 1000 catégories (par exemple, ImageNet).
  • Tâche cible : Adaptation des poids pour classer un jeu de données bien plus petit (par exemple, nos catégories spécifiques FoodVision).
  • Composant exploité : La grande majorité des paramètres du réseau — les couches d'extraction de caractéristiques — sont réutilisées directement.
Gains d'efficacité
Le transfert d'apprentissage réduit considérablement deux barrières majeures en ressources : Coût computationnel (vous évitez d'entraîner tout le modèle pendant plusieurs jours) et Exigence en données (une haute précision peut être obtenue avec des centaines, plutôt que des milliers, d'exemples d'entraînement).
train.py
TERMINALbash — pytorch-env
> Prêt. Cliquez sur « Exécuter » pour lancer.
>
Inspecteur de tenseursEn direct

Exécutez le code pour inspecter les tenseurs actifs
Question 1
Quel est l'avantage principal d'utiliser un modèle pré-entraîné sur ImageNet pour une nouvelle tâche visuelle ?
Il nécessite moins de données étiquetées qu'un entraînement à partir de zéro.
Il élimine complètement la nécessité de données d'entraînement.
Il garantit immédiatement une précision de 100 %.
Question 2
Dans un flux de travail de transfert d'apprentissage, quelle partie du réseau neuronal est généralement gelée ?
La dernière couche de sortie (tête classificatrice).
La base convolutive (couches d'extraction de caractéristiques).
L'ensemble du réseau est généralement non gelé.
Question 3
Lorsque vous remplacez la tête classificatrice dans PyTorch, quel paramètre devez-vous déterminer en premier à partir de la base gelée ?
La taille du lot des données cibles.
La taille des caractéristiques d'entrée (les dimensions de sortie de la dernière couche convolutive).
Le nombre total de paramètres du modèle.
Défi : Adapter la tête classificatrice
Concevoir une nouvelle classification pour FoodVision.
Vous chargez un modèle ResNet pré-entraîné sur ImageNet. Sa dernière couche de caractéristiques produit un vecteur de taille 512. Votre projet « FoodVision » comporte 7 classes alimentaires distinctes.
Étape 1
Quelle est la taille requise en caractéristiques d'entrée pour la nouvelle couche linéaire modifiable ?
Solution :
La taille des caractéristiques d'entrée doit correspondre à la sortie de la couche de base gelée.
Taille : 512.
Étape 2
Quel est le morceau de code PyTorch pour créer cette nouvelle couche de classification (en supposant que la sortie est nommée `new_layer`) ?
Solution :
La taille de sortie de 512 est l'entrée, et le nombre de classes 7 est la sortie.
Code : new_layer = torch.nn.Linear(512, 7)
Étape 3
Quelle est la taille requise en caractéristiques de sortie pour la nouvelle couche linéaire ?
Solution :
La taille des caractéristiques de sortie doit correspondre au nombre de classes cibles.
Taille : 7.